Q: I am calling PrepareMemoryForIO . What is
the meaning of the kIOShareMappingTables bit of
the options field of the IOPreparationTable ?
I've read the documentation in Designing
PCI Cards and Drivers for Power Macintosh Computers and
it didn't really help.
A: In all existing implementations this bit does nothing.
This oversight is an artifact of the difference between the
DriverServicesLib model and its implementation on
traditional Mac OS. See DTS Q&A DV 43 InterfaceLib
and Native Drivers for more information on that
topic.
While we're on the subject of
PrepareMemoryForIO options, you should note
that a number of other options have no effect on current
implementations. The full list is given below.
kIOShareMappingTables
kIOCoherentDataPath
kIOTransferIsLogical
kIOClientIsUserMode
In addition, the kIOLogicalRanges option
must always be set because current implementations do not
support preparation based on physical address.
The following options are implemented as documented.
kIOMultipleRanges
kIOMinimalLogicalMapping
kIOIsInput
kIOIsOutput
Finally, just in case you're wondering, the following
options to CheckpointIO have no effect on
current systems.
kNextIOIsInput
kNextIOIsOutput
The remaining option, kMoreIOTransfers , has
its documented effect.
|